上次談到用 Go 建立 web API server之後,發現我忘記提到 Go 的套件管理方式。那今天就來稍微說一下 Go 語言的套件管理的演進。
大概 10 年前我剛接觸 Go 時 (2014 年),設定 GOPATH
環境變數是 Go 開發者用來管理套件和工程的必經之路。所有的 Go 套件和專案都規定要放在 GOPATH
目錄下的特定結構中。
這個方法有幾個缺點:
JAVA_HOME
差不多麻煩)為了解決 GOPATH
帶來的問題,許多第三方的套件管理器如 glide、dep 等應運而生。
這些工具提供了更多功能,例如:
然而,這些工具都不是官方支持的,所以有時候會遇到相容性問題。
終於 Go 1.11 版本中,Go Module 成為了官方推薦的依賴管理工具。使用 go mod
指令,開發者能夠非常容易地管理他們的 Go 專案和依賴。
go mod init
go mod tidy
go mod download
這些指令大大簡化了依賴管理過程:
在 Day 11 中,我用 go mod init
初始化專案,這指令會產生一個 go.mod
檔案,用來追蹤專案依賴的套件,使用 npm、nuget、poetry 一樣效果。
如果想 add 新的依賴,只需在程式碼中 import 新套件,然後執行 go mod tidy
(在 VSCode 中只要存檔即可觸發),這個指令會自動更新 go.mod
和 go.sum
檔案。
go mod
是 Go 語言中一個非常強大的工具,它不僅簡化了依賴管理,也使多人協作變得更加容易。從 GOPATH
到現在的 go mod
,我們可以看出 Go 社群一直在進步,讓開發者有更好的工具和環境。